#ifndef MINIBASIC_BUILTIN_FUNCTIONS_H
#define MINIBASIC_BUILTIN_FUNCTIONS_H

#pragma once

#include "stdafx.h"

namespace MiniBasic
{
    class Environment;

    namespace Errors
    {
        enum ERROR_CONDITION;
    }

    namespace Builtin
    {
        using Errors::ERROR_CONDITION;

        typedef mbint Function(Environment* env, const std::string& arguments, ERROR_CONDITION&);
        Function Poke;
        Function Locate;
        Function Color;
        Function Window;
        Function Usr;
        // unary functions
        Function Peek;
        Function Rnd;
        Function Wait;
        // nullary functions
        Function CLS;
        Function Abs;
        // non-parenthesised function calls
        mbint BeepIt(Environment* env);
        mbint Size(Environment* env);
        Function Get;
    }
}

#endif
